layui.use(['laydate', 'form', 'table'], function () {
    var laydate = layui.laydate;
    var form = layui.form;
    var table = layui.table;

    //后台数据表格
    table.render({
        elem: '#userTbale'
        , cellMinWidth: 100 //layui 2.2.1 新增 全局定义所有常规单元格的最小宽度
        , url: requestURL+prefix+userService+'/search/pageList' //数据接口
        , headers: {"Authorization":authToken} 
        , parseData: function (res) { //res 即为原始返回的数据
            return {
                "code": res.status, //解析接口状态
                "msg": res.message, //解析提示文本
                "count": res.total, //解析数据长度
                "data": res.list //解析数据列表
            };
        }
        , page: true //开启分页
        , cols: [[ //表头
            {field: 'id', title: 'ID', align: 'center', width: 90, sort: true}
            , {field: 'loginId', title: '登录ID', align: 'center', width: 90,sort: true}
            , {field: 'loginName', title: '登录姓名', align: 'center', width: 180}
            , {field: 'email', title: '登录邮箱', align: 'center', width: 180}
            , {field: 'loginIp', title: '登录IP', align: 'center', width: 165}
            , {field: 'gmtCreate', title: '登录时间', align: 'center', width: 160}
            , {field: 'gmtModified', title: '退出时间', align: 'center', width: 160 }
            , {field: 'state', title: '状态', align: 'center', width: 160, sort: true, templet:function (d) {
                    if (d.state == 0) {
                        return "在线中";
                    } else if (d.state == 1) {
                        return "已下线";
                    } else {
                        return "保密";
                    }
                }}
            , {fixed: 'right', title: '操作', width: 120, align: 'center', toolbar: '#barUser'}
        ]],
        toolbar: true
    });

    //监听行工具事件
    table.on('tool(userTbale)', function (obj) { //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
        var data = obj.data //获得当前行数据
            , layEvent = obj.event; //获得 lay-event 对应的值
        if (layEvent === 'edit') {
            // layer.msg('编辑操作' + data.id);
            sessionStorage.setItem('id',data.id);
            xadmin.open('编辑', 'admin-byid-edit.html', 600, 400);
        } else if (layEvent === 'deleteLoginLog') {
            // layer.msg('删除操作' + data.id);
            member_del(obj, data.id)
        }
    });

    //模糊查询
    form.on('submit(search)',function (data) {
        // console.log(data.field);
        //发送异步请求获取对应数据
        console.log("获取的模糊查询条件信息"+data);
        flushTable(data.field);
        return false;
    })

    //按登录日志条数删除
    form.on('submit(delLimit)',function (data) {
        // console.log(data.field);
        //发送异步请求获取对应数据
        // alert(JSON.stringify(data.field));
        let count = data.field.count;
        if (count == 0) {
            layer.msg('请选择删除条数',{icon:0,time:1000});
            return  false;
        }
        deleteLimit(count);
        return false;
    })

});

// 会员页面数据渲染
function flushTable(data) {
    layui.use(['table'], function () {
        var table = layui.table;

        //后台数据表格
        table.render({
            elem: '#userTbale'
            , cellMinWidth: 100 //layui 2.2.1 新增 全局定义所有常规单元格的最小宽度
            , url: requestURL+prefix+userService+'/search/pageList' //数据接口
            , headers: {"Authorization":authToken}
            , parseData: function (res) { //res 即为原始返回的数据
                return {
                    "code": res.status, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.total, //解析数据长度
                    "data": res.list //解析数据列表
                };
            }
            , page: true //开启分页
            , where: data
            , cols: [[ //表头
                {field: 'id', title: 'ID', align: 'center', width: 90, sort: true}
                , {field: 'loginId', title: '登录ID', align: 'center', width: 90,sort: true}
                , {field: 'loginName', title: '登录姓名', align: 'center', width: 180}
                , {field: 'email', title: '登录邮箱', align: 'center', width: 180}
                , {field: 'loginIp', title: '登录IP', align: 'center', width: 165}
                , {field: 'gmtCreate', title: '登录时间', align: 'center', width: 160}
                , {field: 'gmtModified', title: '退出时间', align: 'center', width: 160 }
                , {field: 'state', title: '状态', align: 'center', width: 160, templet:function (d) {
                        if (d.state == 0) {
                            return "在线中";
                        } else if (d.state == 1) {
                            return "已下线";
                        } else {
                            return "保密";
                        }
                    }}
                , {fixed: 'right', title: '操作', width: 120, align: 'center', toolbar: '#barUser'}
            ]],
            toolbar: true
        });

    });
}

/*登录日志-删除*/
function member_del(obj,id) {
    layer.confirm('确认要删除吗？', function (index) {
        // console.log(obj);
        //发异步删除数据
        $.ajax({
            type: 'POST',
            url: requestURL+prefix+userService+'/search/delete/'+id,
            headers: {"Authorization":authToken},
            success: function(data) {
                if (data.status == 200 ) {
                    obj.del(); //保持原页面不动,只将删除的移除即可
                    layer.msg('已删除!', {icon: 1, time: 1000});
                    return;
                }
                if (data.status == 403) {
                    layui.layer.msg('权限不足，请联系超级管理员！', {icon: 0, time: 1200});
                    return false;
                }
                layer.msg(data.object, {icon: 2, time: 1000});
                return;
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                var state = XMLHttpRequest.status;
                if (state == 403) {
                    layui.layer.msg('权限不足，请联系超级管理员！', {icon: 0, time: 1200});
                    return false;
                }
                layui.layer.msg('请求接口异常！', {icon: 0, time: 1200});
                return false;
            }
        });
        return;
    });
}

/**
 * 按条数删除
 * @param count
 */
function deleteLimit(count) {
    layer.confirm('确认要删除吗？',{title:'提示：从最早的登录日志数开始！'}, function (index) {
        //发异步删除数据
        $.ajax({
            type: 'POST',
            url: requestURL+prefix+userService+'/login-log/deleteLimit/',
            headers: {"Authorization":authToken},
            data: {"count":count},
            success: function(data) {
                if (data.status == 200 ) {
                    layer.msg('已删除!', {icon: 1, time: 1000,end:function () {
                            // 可以对父窗口进行刷新
                            xadmin.father_reload();
                        }});
                    return;
                }
                if (data.status == 403) {
                    layui.layer.msg('权限不足，请联系超级管理员！', {icon: 0, time: 1200});
                    return false;
                }
                layer.msg('未删除!', {icon: 2, time: 1000});
                return;
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                var state = XMLHttpRequest.status;
                if (state == 403) {
                    layui.layer.msg('权限不足，请联系超级管理员！', {icon: 0, time: 1200});
                    return false;
                }
                layui.layer.msg('请求接口异常！', {icon: 0, time: 1200});
                return false;
            }
        });
    });

}